package nodos;

import java.util.ArrayList;

import javax.swing.tree.DefaultMutableTreeNode;

public class NodoListaImportaciones extends Nodo {

	private Nodo ruta;
	private NodoListaImportaciones listaImportaciones;

	public NodoListaImportaciones(Nodo ruta, NodoListaImportaciones listaImportaciones) {
		this.ruta = ruta;
		this.listaImportaciones = listaImportaciones;
	}

	@Override
	public DefaultMutableTreeNode getSubArbolVisual() {
		DefaultMutableTreeNode raiz=new DefaultMutableTreeNode("Lista de Importaciones");
		raiz.add(ruta.getSubArbolVisual());
		ArrayList<Nodo> importaciones=obtenerImportaciones();
		if(importaciones.size()!=0)
			for (Nodo ruta : importaciones) {
				raiz.add(ruta.getSubArbolVisual());
			}
		return raiz;
	}

	private ArrayList<Nodo> obtenerImportaciones(){
		ArrayList<Nodo> importaciones=new ArrayList<Nodo>();
		guardarRutas(importaciones, listaImportaciones);
		return importaciones;
	}
	private void guardarRutas(ArrayList<Nodo> rutas,NodoListaImportaciones raizSubArbol){
		if(raizSubArbol==null)
			return;
		else{
			rutas.add(raizSubArbol.ruta);
			guardarRutas(rutas, raizSubArbol.listaImportaciones);
		}
	}

	@Override
	public String traducir(int profundidad) {
		String codJava="import "+ruta.traducir(profundidad)+";\n";
		if(listaImportaciones!=null)
			codJava+=listaImportaciones.traducir(profundidad);
		return codJava;
	}

}
